package com.mkait.thief.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;

/**
 * 
 * @TableName cash
 */
@TableName(value ="cash")
@Data
public class Cash implements Serializable {
    /**
     * 
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 
     */
    @TableField(value = "user_id")
    private Integer userId;

    /**
     * 收款产品类型 1支付宝 2微信
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 提现信息
     */
    @TableField(value = "collect_info")
    private String collectInfo;

    /**
     * 提现金额
     */
    @TableField(value = "money")
    private BigDecimal money;

    /**
     * 手续费
     */
    @TableField(value = "fee")
    private BigDecimal fee;

    /**
     * 实际到账
     */
    @TableField(value = "actual_money")
    private BigDecimal actualMoney;

    /**
     * 状态 0审核中 1审核通过 2审核未通过
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(value = "create_at")
    private Integer createAt;

    /**
     * 完成时间
     */
    @TableField(value = "complete_at")
    private Integer completeAt;

    /**
     * 收款二维码
     */
    @TableField(value = "collect_img")
    private String collectImg;

    /**
     * 1 表示自动提现
     */
    @TableField(value = "auto_cash")
    private Integer autoCash;

    /**
     * 银行名称
     */
    @TableField(value = "bank_name")
    private String bankName;

    /**
     * 开户地址
     */
    @TableField(value = "bank_branch")
    private String bankBranch;

    /**
     * 银行卡号
     */
    @TableField(value = "bank_card")
    private String bankCard;

    /**
     * 真实姓名
     */
    @TableField(value = "realname")
    private String realname;

    /**
     * 身份证号码
     */
    @TableField(value = "idcard_number")
    private String idcardNumber;

    /**
     * 订单号
     */
    @TableField(value = "orderid")
    private String orderid;

    /**
     * 代付账号
     */
    @TableField(value = "account")
    private Integer account;

    /**
     * 代付状态（0，未申请，1，已申请）
     */
    @TableField(value = "daifu_status")
    private Integer daifuStatus;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        Cash other = (Cash) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getUserId() == null ? other.getUserId() == null : this.getUserId().equals(other.getUserId()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
            && (this.getCollectInfo() == null ? other.getCollectInfo() == null : this.getCollectInfo().equals(other.getCollectInfo()))
            && (this.getMoney() == null ? other.getMoney() == null : this.getMoney().equals(other.getMoney()))
            && (this.getFee() == null ? other.getFee() == null : this.getFee().equals(other.getFee()))
            && (this.getActualMoney() == null ? other.getActualMoney() == null : this.getActualMoney().equals(other.getActualMoney()))
            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
            && (this.getCreateAt() == null ? other.getCreateAt() == null : this.getCreateAt().equals(other.getCreateAt()))
            && (this.getCompleteAt() == null ? other.getCompleteAt() == null : this.getCompleteAt().equals(other.getCompleteAt()))
            && (this.getCollectImg() == null ? other.getCollectImg() == null : this.getCollectImg().equals(other.getCollectImg()))
            && (this.getAutoCash() == null ? other.getAutoCash() == null : this.getAutoCash().equals(other.getAutoCash()))
            && (this.getBankName() == null ? other.getBankName() == null : this.getBankName().equals(other.getBankName()))
            && (this.getBankBranch() == null ? other.getBankBranch() == null : this.getBankBranch().equals(other.getBankBranch()))
            && (this.getBankCard() == null ? other.getBankCard() == null : this.getBankCard().equals(other.getBankCard()))
            && (this.getRealname() == null ? other.getRealname() == null : this.getRealname().equals(other.getRealname()))
            && (this.getIdcardNumber() == null ? other.getIdcardNumber() == null : this.getIdcardNumber().equals(other.getIdcardNumber()))
            && (this.getOrderid() == null ? other.getOrderid() == null : this.getOrderid().equals(other.getOrderid()))
            && (this.getAccount() == null ? other.getAccount() == null : this.getAccount().equals(other.getAccount()))
            && (this.getDaifuStatus() == null ? other.getDaifuStatus() == null : this.getDaifuStatus().equals(other.getDaifuStatus()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUserId() == null) ? 0 : getUserId().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getCollectInfo() == null) ? 0 : getCollectInfo().hashCode());
        result = prime * result + ((getMoney() == null) ? 0 : getMoney().hashCode());
        result = prime * result + ((getFee() == null) ? 0 : getFee().hashCode());
        result = prime * result + ((getActualMoney() == null) ? 0 : getActualMoney().hashCode());
        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
        result = prime * result + ((getCreateAt() == null) ? 0 : getCreateAt().hashCode());
        result = prime * result + ((getCompleteAt() == null) ? 0 : getCompleteAt().hashCode());
        result = prime * result + ((getCollectImg() == null) ? 0 : getCollectImg().hashCode());
        result = prime * result + ((getAutoCash() == null) ? 0 : getAutoCash().hashCode());
        result = prime * result + ((getBankName() == null) ? 0 : getBankName().hashCode());
        result = prime * result + ((getBankBranch() == null) ? 0 : getBankBranch().hashCode());
        result = prime * result + ((getBankCard() == null) ? 0 : getBankCard().hashCode());
        result = prime * result + ((getRealname() == null) ? 0 : getRealname().hashCode());
        result = prime * result + ((getIdcardNumber() == null) ? 0 : getIdcardNumber().hashCode());
        result = prime * result + ((getOrderid() == null) ? 0 : getOrderid().hashCode());
        result = prime * result + ((getAccount() == null) ? 0 : getAccount().hashCode());
        result = prime * result + ((getDaifuStatus() == null) ? 0 : getDaifuStatus().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", userId=").append(userId);
        sb.append(", type=").append(type);
        sb.append(", collectInfo=").append(collectInfo);
        sb.append(", money=").append(money);
        sb.append(", fee=").append(fee);
        sb.append(", actualMoney=").append(actualMoney);
        sb.append(", status=").append(status);
        sb.append(", createAt=").append(createAt);
        sb.append(", completeAt=").append(completeAt);
        sb.append(", collectImg=").append(collectImg);
        sb.append(", autoCash=").append(autoCash);
        sb.append(", bankName=").append(bankName);
        sb.append(", bankBranch=").append(bankBranch);
        sb.append(", bankCard=").append(bankCard);
        sb.append(", realname=").append(realname);
        sb.append(", idcardNumber=").append(idcardNumber);
        sb.append(", orderid=").append(orderid);
        sb.append(", account=").append(account);
        sb.append(", daifuStatus=").append(daifuStatus);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}